package com.bsj.power.system.service;

import com.alibaba.fastjson2.JSONObject;
import com.bsj.power.common.config.global.JsonResult;
import com.bsj.power.common.def.vo.homePage.DataStatisticsVO;
import com.bsj.power.common.def.vo.homePage.JobLinkCountVO;
import com.bsj.power.common.def.vo.pls.AlarmReportVO;
import com.bsj.power.common.def.vo.pls.DeviceTypeVO;

import java.util.List;

/**
 * @author LiJiaXin
 * @version 1.0.0
 * @description HomePageService
 * @time 2024/6/7 10:32
 */
public interface HomePageService {

    /**
     * 数据统计
     *
     * @return com.bsj.power.common.def.vo.homePage.DataStatisticsVO
     * @author ljx
     * @time 2024/6/7 11:10
     */
    DataStatisticsVO dataStatistics();

    /**
     * 报警信息
     *
     * @param alarmType
     * @return java.util.List < com.bsj.power.common.def.vo.pls.AlarmReportVO>
     * @author ljx
     * @time 2024/6/11 14:00
     */
    List<AlarmReportVO> alarmInfo(Integer alarmType);

    /**
     * 获取统计数据
     *
     * @return java.util.List<com.bsj.power.common.def.vo.pls.DeviceTypeVO>
     * @author ljx
     * @time 2024/6/11 17:19
     */
    List<DeviceTypeVO> getStatisticsData();

    /**
     * 获取天气信息
     * @param
     * @return com.alibaba.fastjson2.JSONObject
     * @author ljx
     * @time 2024/6/17 15:04
     */
    JSONObject getWeatherInfo();

    /**
     * 设置时间为安全运行天数起始时间
     *
     * @param date
     * @return com.bsj.power.common.config.global.JsonResult
     * @author ljx
     * @time 2024/7/8 16:25
     */
    JsonResult resetTime(String date);

    /**
     * 获取工单关联的人员数据统计
     * @param jobId
     * @return
     */
    JsonResult<JobLinkCountVO> queryJobLinkCount(Long jobId);

    /**
     * 获取该作业工单下面作业人员的报警信息
     * @param jobId
     * @return
     */
    JsonResult<List<AlarmReportVO>> queryJobAlarmList(Long jobId);

    /**
     * 获取安全运行天数起始时间
     *
     * @return java.lang.String
     * @author ljx
     * @time 2024/9/13 20:30
     */
    String getSafetyDayTime();
}
